#ifndef durability_h__
#define durability_h__



#include "rbac_env.h"
#include <string>
#include <rbac.h>
using namespace rbac;

class db_cache
{
public:
	db_cache();
	~db_cache();
	int		open(const std::string& conn_str,const std::string& user_name,const std::string& password);

	void	load(prbac_error	error);

	void	update(const key32& key,prbac_error	error);
	void	remove(const key32& key,prbac_error	error);
	void	insert(const key32& key,prbac_error	error);

	void	update_more(const key_vec& key_list,prbac_error	error);
	void	remove_more(const key_vec& key_list,prbac_error	error);
	void	insert_more(const key_vec& key_list,prbac_error	error);
	void	close();

	rbac_obj_map&		cache();
private:
	rbac_obj_map	cache_;
};

#endif // durability_h__
